class Singleton(object):
  __instance = None			# single instance
  __name = ""

  def __new__(cls, *args, **keywords):
    return cls.getInstance(cls, *args, **keywords)

  def __init__(self):
    pass

  @classmethod
  def getInstance(cls, *args, **keywords):
    if cls.__instance is None:
      cls.__instance = object.__new__(cls, *args, **keywords)
    return cls.__instance
    
  def get_name(self):
    return self.__name
    
  def set_name(self, name):
    self.__name = name
    
  name = property(get_name, set_name)
